// Copyright (C) 2022 Intel Corporation
// SPDX-License-Identifier: Apache-2.0
//

#include <gtest/gtest.h>

#include "ov_ops/augru_sequence.hpp"
#include "base_reference_test.hpp"

using namespace reference_tests;
using namespace ov;

namespace {
struct AUGRUSequenceParams {
    template <class T>
    AUGRUSequenceParams(
        const size_t batchSize, const size_t inputSize, const size_t hiddenSize, const size_t seqLength,
        const element::Type_t& iType,
        const std::vector<T>& XValues, const std::vector<T>& H_tValues, const std::vector<int64_t>& seqLengthsValues,
        const std::vector<T>& WValues, const std::vector<T>& RValues, const std::vector<T>& BValues, const std::vector<T>& AValues,
        const std::vector<T>& YValues, const std::vector<T>& HoValues,
        const std::string& testcaseName = "") :
        batchSize(batchSize), inputSize(inputSize), hiddenSize(hiddenSize), seqLength(seqLength),
        iType(iType), oType(iType),
        testcaseName(testcaseName) {
            numDirections = 1;

            Shape XShape = Shape{batchSize, seqLength, inputSize};
            Shape H_tShape = Shape{batchSize, numDirections, hiddenSize};
            Shape seqLengthsShape = Shape{batchSize};
            Shape WShape = Shape{numDirections, 3 * hiddenSize, inputSize};
            Shape RShape = Shape{numDirections, 3 * hiddenSize, hiddenSize};
            Shape YShape = Shape{batchSize, numDirections, seqLength, hiddenSize};
            Shape HoShape = Shape{batchSize, numDirections, hiddenSize};

            X = reference_tests::Tensor(XShape, iType, XValues);
            H_t = reference_tests::Tensor(H_tShape, iType, H_tValues);
            sequence_lengths = reference_tests::Tensor(seqLengthsShape, element::Type_t::i64, seqLengthsValues);
            W = reference_tests::Tensor(WShape, iType, WValues);
            R = reference_tests::Tensor(RShape, iType, RValues);

            Y = reference_tests::Tensor(YShape, oType, YValues);
            Ho = reference_tests::Tensor(HoShape, oType, HoValues);

            Shape BShape = Shape{numDirections, 3 * hiddenSize};
            B = reference_tests::Tensor(BShape, iType, BValues);

            Shape AShape = Shape{batchSize, seqLength, 1};
            A = reference_tests::Tensor(AShape, iType, AValues);

        }

    size_t batchSize;
    size_t inputSize;
    size_t hiddenSize;
    size_t seqLength;
    size_t numDirections;
    element::Type_t iType;
    element::Type_t oType;

    reference_tests::Tensor X;
    reference_tests::Tensor H_t;
    reference_tests::Tensor sequence_lengths;
    reference_tests::Tensor W;
    reference_tests::Tensor R;
    reference_tests::Tensor B;
    reference_tests::Tensor A;
    reference_tests::Tensor Y;
    reference_tests::Tensor Ho;
    std::string testcaseName;
};

class ReferenceAUGRUSequenceTest : public testing::TestWithParam<AUGRUSequenceParams>, public CommonReferenceTest {
public:
    void SetUp() override {
        auto params = GetParam();
        function = CreateFunction(params);
        inputData = {params.X.data, params.H_t.data, params.sequence_lengths.data, params.W.data, params.R.data, params.B.data, params.A.data};
        refOutData = {params.Y.data, params.Ho.data};
    }

    static std::string getTestCaseName(const testing::TestParamInfo<AUGRUSequenceParams>& obj) {
        auto param = obj.param;
        std::ostringstream result;
        result << "iType=" << param.iType << "_";
        result << "xShape=" << param.X.shape << "_";
        result << "htShape=" << param.H_t.shape << "_";
        result << "stShape=" << param.sequence_lengths.shape << "_";
        result << "wShape=" << param.W.shape << "_";
        result << "rShape=" << param.R.shape << "_";
        result << "bShape=" << param.B.shape << "_";
        result << "YShape=" << param.Y.shape << "_";
        result << "hoShape=" << param.Ho.shape;
        if (!param.testcaseName.empty())
            result << "_" << param.testcaseName;

        return result.str();
    }

private:
    static std::shared_ptr<Model> CreateFunction(const AUGRUSequenceParams& params) {
        const auto X = std::make_shared<op::v0::Parameter>(params.X.type, params.X.shape);
        const auto H_t = std::make_shared<op::v0::Parameter>(params.H_t.type, params.H_t.shape);
        const auto sequence_lengths = std::make_shared<op::v0::Parameter>(params.sequence_lengths.type, params.sequence_lengths.shape);
        const auto W = std::make_shared<op::v0::Parameter>(params.W.type, params.W.shape);
        const auto R = std::make_shared<op::v0::Parameter>(params.R.type, params.R.shape);
        const auto B = std::make_shared<op::v0::Parameter>(params.B.type, params.B.shape);
        const auto A = std::make_shared<op::v0::Parameter>(params.A.type, params.A.shape);

        const auto augru_sequence =
            std::make_shared<ov::op::internal::AUGRUSequence>(X,
                                                  H_t,
                                                  sequence_lengths,
                                                  W,
                                                  R,
                                                  B,
                                                  A,
                                                  params.hiddenSize);

        auto function = std::make_shared<Model>(augru_sequence->outputs(), ParameterVector{X, H_t, sequence_lengths, W, R, B, A});
        return function;
    }
};

TEST_P(ReferenceAUGRUSequenceTest, CompareWithRefs) {
    Exec();
}

template <element::Type_t ET>
std::vector<AUGRUSequenceParams> generateParams() {
    using T = typename element_type_traits<ET>::value_type;

    std::vector<AUGRUSequenceParams> params {
        AUGRUSequenceParams(
            5, 10, 10, 10,
            ET,
            std::vector<T>{
                1, 9.97466, 9.39302, 2.15312, 9.99136, 3.1248, 4.56923, 4.4912, 7.02771, 9.41985,
                8.6168, 3.81946, 5.72093, 4.99108, 3.0662, 5.80973, 9.22566, 5.11484, 4.87629, 9.45215,
                8.0055, 7.44373, 8.22482, 1.83521, 5.66337, 8.78518, 8.46232, 8.46643, 3.45745, 1.53319,
                7.03475, 6.33759, 7.04489, 4.70609, 2.77796, 3.60667, 2.27908, 8.04983, 4.71285, 1.30754,
                6.61627, 6.94572, 3.68646, 5.01521, 2.99912, 1.66028, 5.22315, 1.86555, 9.13033, 2.07541,
                5.72319, 1.75261, 9.25175, 9.19404, 3.69037, 6.2595, 6.09321, 6.52544, 9.60882, 3.34881,
                3.07914, 5.80104, 9.54944, 5.43754, 5.8654, 7.88937, 1.40811, 2.2597, 8.13163, 1.26821,
                8.94813, 5.86709, 5.03182, 9.02922, 4.39826, 5.84582, 6.87069, 4.25135, 6.13908, 6.74053,
                2.13683, 7.21184, 6.82974, 4.18545, 7.8691, 4.20879, 7.77509, 8.93208, 1.10502, 5.48298,
                1.66413, 8.08256, 1.57661, 4.19779, 9.47653, 4.41823, 7.86628, 7.94436, 3.71224, 7.95465,
                2.37637, 6.20771, 1.08107, 7.38138, 5.23577, 7.88133, 5.20653, 3.42101, 8.48523, 5.96192,
                1.63073, 5.25228, 7.68488, 2.7276, 5.1788, 3.07327, 5.57423, 2.87711, 1.44374, 5.66976,
                2.55051, 4.56682, 1.96629, 5.58829, 1.91922, 3.59846, 3.08583, 9.70901, 3.50487, 3.1026,
                1.82401, 6.1306, 4.76134, 4.31059, 8.31695, 3.60784, 7.45652, 6.51653, 4.84219, 7.76686,
                4.85031, 4.85544, 4.25714, 2.38005, 9.43471, 9.24769, 8.03763, 6.54696, 1.32399, 6.88891,
                2.16793, 3.64924, 4.24733, 3.47181, 1.66572, 2.36923, 2.45457, 9.44841, 4.34021, 1.45016,
                7.6686, 3.68812, 2.83922, 9.83581, 9.03719, 7.83414, 6.86009, 1.35715, 8.32489, 7.86316,
                5.09754, 5.78644, 1.98402, 2.31429, 5.5791, 2.94085, 9.24799, 5.15937, 2.19041, 7.87817,
                2.9146, 1.66833, 1.85877, 2.45985, 4.20817, 1.85777, 2.28937, 9.37912, 6.18926, 8.55681,
                6.60963, 3.92066, 7.5521, 5.70463, 7.6313, 2.48866, 7.18352, 4.8413, 7.55702, 7.80702,
                4.5785, 9.3268, 2.83159, 1.07202, 9.33716, 3.6506, 2.50256, 1.21691, 5.06801, 8.27505,
                4.31539, 6.48286, 1.31363, 4.1912, 1.70668, 7.23867, 1.11441, 5.13591, 9.65186, 4.00767,
                5.24875, 1.94852, 5.52768, 8.97121, 5.8094, 3.53329, 4.19126, 9.06652, 3.1734, 1.21496,
                9.69154, 4.86971, 4.1166, 6.19361, 2.13874, 9.55039, 3.8225, 9.57548, 2.96554, 3.2383,
                8.77422, 3.11741, 8.3359, 5.89508, 2.72134, 6.29956, 1.43323, 1.14286, 1.4474, 4.59474,
                6.19214, 8.80766, 8.07546, 3.29232, 1.74029, 2.4198, 2.88544, 4.75644, 4.12921, 7.29896,
                7.27759, 1.67252, 1.32823, 8.1046, 9.10476, 1.04197, 3.37783, 5.2064, 4.23835, 3.16196,
                1.20852, 5.78501, 2.17175, 6.05313, 2.51048, 4.78967, 7.16219, 3.4651, 1.09, 2.9788,
                1.28761, 9.41385, 8.03883, 5.65835, 1.14816, 3.6892, 5.86648, 8.73895, 2.66603, 1.75192,
                1.39845, 4.99427, 1.17387, 1.60329, 8.30594, 6.72662, 7.95565, 7.35114, 3.1439, 1.39976,
                3.53095, 8.78581, 1.65811, 6.94299, 2.68641, 5.70058, 9.13491, 5.27637, 8.6232, 8.54902,
                2.25352, 5.86274, 5.20377, 2.96815, 4.96745, 5.3225, 3.99956, 1.08021, 5.54918, 7.05833,
                1.49913, 2.41822, 6.44593, 3.87301, 9.01465, 8.11336, 2.95749, 2.80188, 7.12396, 2.40595,
                5.59325, 9.89258, 2.30223, 1.4347, 9.09158, 7.43797, 3.79295, 4.53646, 1.72705, 4.16909,
                1.00912, 6.62167, 2.80244, 6.626, 3.89307, 1.42586, 7.51028, 7.83327, 4.65674, 7.33902,
                6.26823, 9.72608, 3.73491, 3.8238, 3.03815, 7.05101, 8.0103, 5.61396, 6.53738, 1.41095,
                5.0149, 9.71211, 4.23604, 5.98629, 4.70219, 9.69442, 2.82752, 9.93544, 6.9328, 8.2817,
                5.12336, 8.98577, 5.80541, 6.19552, 9.25748, 3.82732, 7.53525, 8.24712, 5.32057, 5.38817,
                8.57269, 5.99975, 3.42893, 5.38068, 3.48261, 3.02851, 6.82079, 9.2902, 2.80427, 8.91868,
                5.19227, 7.52482, 3.72584, 5.40107, 2.83307, 1.79755, 2.49121, 5.52697, 8.08823, 9.13242,
                2.97572, 7.64318, 3.32023, 6.07788, 2.19187, 4.34879, 1.7457, 5.55154, 7.24966, 5.1128,
                4.25147, 8.34407, 1.4123, 4.49045, 5.12671, 7.62159, 9.18673, 3.49665, 8.35992, 6.90684,
                1.10152, 7.61818, 6.43145, 7.12017, 6.25564, 6.16169, 4.24916, 9.6283, 9.88249, 4.48422,
                8.52562, 9.83928, 6.26818, 7.03839, 1.77631, 9.92305, 8.0155, 9.94928, 6.88321, 1.33685,
                7.4718, 7.19305, 6.47932, 1.9559, 3.52616, 7.98593, 9.0115, 5.59539, 7.44137, 1.70001,
                6.53774, 8.54023, 7.26405, 5.99553, 8.75071, 7.70789, 3.38094, 9.99792, 6.16359, 6.75153,
                5.4073, 9.00437, 8.87059, 8.63011, 6.82951, 6.27021, 3.53425, 9.92489, 8.19695, 5.51473,
                7.95084, 2.11852, 9.28916, 1.40353, 3.05744, 8.58238, 3.75014, 5.35889, 6.85048, 2.29549,
                3.75218, 8.98228, 8.98158, 5.63695, 3.40379, 8.92309, 5.48185, 4.00095, 9.05227, 2.84035,
                8.37644, 8.54954, 5.70516, 2.45744, 9.54079, 1.53504, 8.9785, 6.1691, 4.40962, 10},
            std::vector<T>{
                1, 9.97466, 9.39302, 2.15312, 9.99136, 3.1248, 4.56923, 4.4912, 7.02771, 9.41985,
                8.6168, 3.81946, 5.72093, 4.99108, 3.0662, 5.80973, 9.22566, 5.11484, 4.87629, 9.45215,
                8.0055, 7.44373, 8.22482, 1.83521, 5.66337, 8.78518, 8.46232, 8.46643, 3.45745, 1.53319,
                7.03475, 6.33759, 7.04489, 4.70609, 2.77796, 3.60667, 2.27908, 8.04983, 4.71285, 1.30754,
                6.61627, 6.94572, 3.68646, 5.01521, 2.99912, 1.66028, 5.22315, 1.86555, 9.13033, 10},
            std::vector<int64_t>{10, 10, 10, 10, 10},
            std::vector<T>{
                1, 9.97466, 9.39302, 2.15312, 9.99136, 3.1248, 4.56923, 4.4912, 7.02771, 9.41985,
                8.6168, 3.81946, 5.72093, 4.99108, 3.0662, 5.80973, 9.22566, 5.11484, 4.87629, 9.45215,
                8.0055, 7.44373, 8.22482, 1.83521, 5.66337, 8.78518, 8.46232, 8.46643, 3.45745, 1.53319,
                7.03475, 6.33759, 7.04489, 4.70609, 2.77796, 3.60667, 2.27908, 8.04983, 4.71285, 1.30754,
                6.61627, 6.94572, 3.68646, 5.01521, 2.99912, 1.66028, 5.22315, 1.86555, 9.13033, 2.07541,
                5.72319, 1.75261, 9.25175, 9.19404, 3.69037, 6.2595, 6.09321, 6.52544, 9.60882, 3.34881,
                3.07914, 5.80104, 9.54944, 5.43754, 5.8654, 7.88937, 1.40811, 2.2597, 8.13163, 1.26821,
                8.94813, 5.86709, 5.03182, 9.02922, 4.39826, 5.84582, 6.87069, 4.25135, 6.13908, 6.74053,
                2.13683, 7.21184, 6.82974, 4.18545, 7.8691, 4.20879, 7.77509, 8.93208, 1.10502, 5.48298,
                1.66413, 8.08256, 1.57661, 4.19779, 9.47653, 4.41823, 7.86628, 7.94436, 3.71224, 7.95465,
                2.37637, 6.20771, 1.08107, 7.38138, 5.23577, 7.88133, 5.20653, 3.42101, 8.48523, 5.96192,
                1.63073, 5.25228, 7.68488, 2.7276, 5.1788, 3.07327, 5.57423, 2.87711, 1.44374, 5.66976,
                2.55051, 4.56682, 1.96629, 5.58829, 1.91922, 3.59846, 3.08583, 9.70901, 3.50487, 3.1026,
                1.82401, 6.1306, 4.76134, 4.31059, 8.31695, 3.60784, 7.45652, 6.51653, 4.84219, 7.76686,
                4.85031, 4.85544, 4.25714, 2.38005, 9.43471, 9.24769, 8.03763, 6.54696, 1.32399, 6.88891,
                2.16793, 3.64924, 4.24733, 3.47181, 1.66572, 2.36923, 2.45457, 9.44841, 4.34021, 1.45016,
                7.6686, 3.68812, 2.83922, 9.83581, 9.03719, 7.83414, 6.86009, 1.35715, 8.32489, 7.86316,
                5.09754, 5.78644, 1.98402, 2.31429, 5.5791, 2.94085, 9.24799, 5.15937, 2.19041, 7.87817,
                2.9146, 1.66833, 1.85877, 2.45985, 4.20817, 1.85777, 2.28937, 9.37912, 6.18926, 8.55681,
                6.60963, 3.92066, 7.5521, 5.70463, 7.6313, 2.48866, 7.18352, 4.8413, 7.55702, 7.80702,
                4.5785, 9.3268, 2.83159, 1.07202, 9.33716, 3.6506, 2.50256, 1.21691, 5.06801, 8.27505,
                4.31539, 6.48286, 1.31363, 4.1912, 1.70668, 7.23867, 1.11441, 5.13591, 9.65186, 4.00767,
                5.24875, 1.94852, 5.52768, 8.97121, 5.8094, 3.53329, 4.19126, 9.06652, 3.1734, 1.21496,
                9.69154, 4.86971, 4.1166, 6.19361, 2.13874, 9.55039, 3.8225, 9.57548, 2.96554, 3.2383,
                8.77422, 3.11741, 8.3359, 5.89508, 2.72134, 6.29956, 1.43323, 1.14286, 1.4474, 4.59474,
                6.19214, 8.80766, 8.07546, 3.29232, 1.74029, 2.4198, 2.88544, 4.75644, 4.12921, 7.29896,
                7.27759, 1.67252, 1.32823, 8.1046, 9.10476, 1.04197, 3.37783, 5.2064, 4.23835, 3.16196,
                1.20852, 5.78501, 2.17175, 6.05313, 2.51048, 4.78967, 7.16219, 3.4651, 1.09, 2.9788,
                1.28761, 9.41385, 8.03883, 5.65835, 1.14816, 3.6892, 5.86648, 8.73895, 2.66603, 1.75192,
                1.39845, 4.99427, 1.17387, 1.60329, 8.30594, 6.72662, 7.95565, 7.35114, 3.1439, 10},
            std::vector<T>{
                1, 9.97466, 9.39302, 2.15312, 9.99136, 3.1248, 4.56923, 4.4912, 7.02771, 9.41985,
                8.6168, 3.81946, 5.72093, 4.99108, 3.0662, 5.80973, 9.22566, 5.11484, 4.87629, 9.45215,
                8.0055, 7.44373, 8.22482, 1.83521, 5.66337, 8.78518, 8.46232, 8.46643, 3.45745, 1.53319,
                7.03475, 6.33759, 7.04489, 4.70609, 2.77796, 3.60667, 2.27908, 8.04983, 4.71285, 1.30754,
                6.61627, 6.94572, 3.68646, 5.01521, 2.99912, 1.66028, 5.22315, 1.86555, 9.13033, 2.07541,
                5.72319, 1.75261, 9.25175, 9.19404, 3.69037, 6.2595, 6.09321, 6.52544, 9.60882, 3.34881,
                3.07914, 5.80104, 9.54944, 5.43754, 5.8654, 7.88937, 1.40811, 2.2597, 8.13163, 1.26821,
                8.94813, 5.86709, 5.03182, 9.02922, 4.39826, 5.84582, 6.87069, 4.25135, 6.13908, 6.74053,
                2.13683, 7.21184, 6.82974, 4.18545, 7.8691, 4.20879, 7.77509, 8.93208, 1.10502, 5.48298,
                1.66413, 8.08256, 1.57661, 4.19779, 9.47653, 4.41823, 7.86628, 7.94436, 3.71224, 7.95465,
                2.37637, 6.20771, 1.08107, 7.38138, 5.23577, 7.88133, 5.20653, 3.42101, 8.48523, 5.96192,
                1.63073, 5.25228, 7.68488, 2.7276, 5.1788, 3.07327, 5.57423, 2.87711, 1.44374, 5.66976,
                2.55051, 4.56682, 1.96629, 5.58829, 1.91922, 3.59846, 3.08583, 9.70901, 3.50487, 3.1026,
                1.82401, 6.1306, 4.76134, 4.31059, 8.31695, 3.60784, 7.45652, 6.51653, 4.84219, 7.76686,
                4.85031, 4.85544, 4.25714, 2.38005, 9.43471, 9.24769, 8.03763, 6.54696, 1.32399, 6.88891,
                2.16793, 3.64924, 4.24733, 3.47181, 1.66572, 2.36923, 2.45457, 9.44841, 4.34021, 1.45016,
                7.6686, 3.68812, 2.83922, 9.83581, 9.03719, 7.83414, 6.86009, 1.35715, 8.32489, 7.86316,
                5.09754, 5.78644, 1.98402, 2.31429, 5.5791, 2.94085, 9.24799, 5.15937, 2.19041, 7.87817,
                2.9146, 1.66833, 1.85877, 2.45985, 4.20817, 1.85777, 2.28937, 9.37912, 6.18926, 8.55681,
                6.60963, 3.92066, 7.5521, 5.70463, 7.6313, 2.48866, 7.18352, 4.8413, 7.55702, 7.80702,
                4.5785, 9.3268, 2.83159, 1.07202, 9.33716, 3.6506, 2.50256, 1.21691, 5.06801, 8.27505,
                4.31539, 6.48286, 1.31363, 4.1912, 1.70668, 7.23867, 1.11441, 5.13591, 9.65186, 4.00767,
                5.24875, 1.94852, 5.52768, 8.97121, 5.8094, 3.53329, 4.19126, 9.06652, 3.1734, 1.21496,
                9.69154, 4.86971, 4.1166, 6.19361, 2.13874, 9.55039, 3.8225, 9.57548, 2.96554, 3.2383,
                8.77422, 3.11741, 8.3359, 5.89508, 2.72134, 6.29956, 1.43323, 1.14286, 1.4474, 4.59474,
                6.19214, 8.80766, 8.07546, 3.29232, 1.74029, 2.4198, 2.88544, 4.75644, 4.12921, 7.29896,
                7.27759, 1.67252, 1.32823, 8.1046, 9.10476, 1.04197, 3.37783, 5.2064, 4.23835, 3.16196,
                1.20852, 5.78501, 2.17175, 6.05313, 2.51048, 4.78967, 7.16219, 3.4651, 1.09, 2.9788,
                1.28761, 9.41385, 8.03883, 5.65835, 1.14816, 3.6892, 5.86648, 8.73895, 2.66603, 1.75192,
                1.39845, 4.99427, 1.17387, 1.60329, 8.30594, 6.72662, 7.95565, 7.35114, 3.1439, 10},
            std::vector<T>{
                1, 9.97466, 9.39302, 2.15312, 9.99136, 3.1248, 4.56923, 4.4912, 7.02771, 9.41985,
                8.6168, 3.81946, 5.72093, 4.99108, 3.0662, 5.80973, 9.22566, 5.11484, 4.87629, 9.45215,
                8.0055, 7.44373, 8.22482, 1.83521, 5.66337, 8.78518, 8.46232, 8.46643, 3.45745, 10},
            std::vector<T>(5*10, 0),
            std::vector<T>{
                1, 9.97466, 9.39302, 2.15312, 9.99136, 3.1248, 4.56923, 4.4912, 7.02771, 9.41985, 1,
                9.97466, 9.39302, 2.15312, 9.99136, 3.1248, 4.56923, 4.4912, 7.02771, 9.41985, 1,
                9.97466, 9.39302, 2.15312, 9.99136, 3.1248, 4.56923, 4.4912, 7.02771, 9.41985, 1,
                9.97466, 9.39302, 2.15312, 9.99136, 3.1248, 4.56923, 4.4912, 7.02771, 9.41985, 1,
                9.97466, 9.39302, 2.15312, 9.99136, 3.1248, 4.56923, 4.4912, 7.02771, 9.41985, 1,
                9.97466, 9.39302, 2.15312, 9.99136, 3.1248, 4.56923, 4.4912, 7.02771, 9.41985, 1,
                9.97466, 9.39302, 2.15312, 9.99136, 3.1248, 4.56923, 4.4912, 7.02771, 9.41985, 1,
                9.97466, 9.39302, 2.15312, 9.99136, 3.1248, 4.56923, 4.4912, 7.02771, 9.41985, 1,
                9.97466, 9.39302, 2.15312, 9.99136, 3.1248, 4.56923, 4.4912, 7.02771, 9.41985, 1,
                9.97466, 9.39302, 2.15312, 9.99136, 3.1248, 4.56923, 4.4912, 7.02771, 9.41985, 8.6168,
                3.81946, 5.72093, 4.99108, 3.0662, 5.80973, 9.22566, 5.11484, 4.87629, 9.45215, 8.6168,
                3.81946, 5.72093, 4.99108, 3.0662, 5.80973, 9.22566, 5.11484, 4.87629, 9.45215, 8.6168,
                3.81946, 5.72093, 4.99108, 3.0662, 5.80973, 9.22566, 5.11484, 4.87629, 9.45215, 8.6168,
                3.81946, 5.72093, 4.99108, 3.0662, 5.80973, 9.22566, 5.11484, 4.87629, 9.45215, 8.6168,
                3.81946, 5.72093, 4.99108, 3.0662, 5.80973, 9.22566, 5.11484, 4.87629, 9.45215, 8.6168,
                3.81946, 5.72093, 4.99108, 3.0662, 5.80973, 9.22566, 5.11484, 4.87629, 9.45215, 8.6168,
                3.81946, 5.72093, 4.99108, 3.0662, 5.80973, 9.22566, 5.11484, 4.87629, 9.45215, 8.6168,
                3.81946, 5.72093, 4.99108, 3.0662, 5.80973, 9.22566, 5.11484, 4.87629, 9.45215, 8.6168,
                3.81946, 5.72093, 4.99108, 3.0662, 5.80973, 9.22566, 5.11484, 4.87629, 9.45215, 8.6168,
                3.81946, 5.72093, 4.99108, 3.0662, 5.80973, 9.22566, 5.11484, 4.87629, 9.45215, 8.0055,
                7.44373, 8.22482, 1.83521, 5.66337, 8.78518, 8.46232, 8.46643, 3.45745, 1.53319, 8.0055,
                7.44373, 8.22482, 1.83521, 5.66337, 8.78518, 8.46232, 8.46643, 3.45745, 1.53319, 8.0055,
                7.44373, 8.22482, 1.83521, 5.66337, 8.78518, 8.46232, 8.46643, 3.45745, 1.53319, 8.0055,
                7.44373, 8.22482, 1.83521, 5.66337, 8.78518, 8.46232, 8.46643, 3.45745, 1.53319, 8.0055,
                7.44373, 8.22482, 1.83521, 5.66337, 8.78518, 8.46232, 8.46643, 3.45745, 1.53319, 8.0055,
                7.44373, 8.22482, 1.83521, 5.66337, 8.78518, 8.46232, 8.46643, 3.45745, 1.53319, 8.0055,
                7.44373, 8.22482, 1.83521, 5.66337, 8.78518, 8.46232, 8.46643, 3.45745, 1.53319, 8.0055,
                7.44373, 8.22482, 1.83521, 5.66337, 8.78518, 8.46232, 8.46643, 3.45745, 1.53319, 8.0055,
                7.44373, 8.22482, 1.83521, 5.66337, 8.78518, 8.46232, 8.46643, 3.45745, 1.53319, 8.0055,
                7.44373, 8.22482, 1.83521, 5.66337, 8.78518, 8.46232, 8.46643, 3.45745, 1.53319, 7.03475,
                6.33759, 7.04489, 4.70609, 2.77796, 3.60667, 2.27908, 8.04983, 4.71285, 1.30754, 7.03475,
                6.33759, 7.04489, 4.70609, 2.77796, 3.60667, 2.27908, 8.04983, 4.71285, 1.30754, 7.03475,
                6.33759, 7.04489, 4.70609, 2.77796, 3.60667, 2.27908, 8.04983, 4.71285, 1.30754, 7.03475,
                6.33759, 7.04489, 4.70609, 2.77796, 3.60667, 2.27908, 8.04983, 4.71285, 1.30754, 7.03475,
                6.33759, 7.04489, 4.70609, 2.77796, 3.60667, 2.27908, 8.04983, 4.71285, 1.30754, 7.03475,
                6.33759, 7.04489, 4.70609, 2.77796, 3.60667, 2.27908, 8.04983, 4.71285, 1.30754, 7.03475,
                6.33759, 7.04489, 4.70609, 2.77796, 3.60667, 2.27908, 8.04983, 4.71285, 1.30754, 7.03475,
                6.33759, 7.04489, 4.70609, 2.77796, 3.60667, 2.27908, 8.04983, 4.71285, 1.30754, 7.03475,
                6.33759, 7.04489, 4.70609, 2.77796, 3.60667, 2.27908, 8.04983, 4.71285, 1.30754, 7.03475,
                6.33759, 7.04489, 4.70609, 2.77796, 3.60667, 2.27908, 8.04983, 4.71285, 1.30754, 6.61627,
                6.94572, 3.68646, 5.01521, 2.99912, 1.66028, 5.22315, 1.86555, 9.13033, 10, 6.61627,
                6.94572, 3.68646, 5.01521, 2.99912, 1.66028, 5.22315, 1.86555, 9.13033, 10, 6.61627,
                6.94572, 3.68646, 5.01521, 2.99912, 1.66028, 5.22315, 1.86555, 9.13033, 10, 6.61627,
                6.94572, 3.68646, 5.01521, 2.99912, 1.66028, 5.22315, 1.86555, 9.13033, 10, 6.61627,
                6.94572, 3.68646, 5.01521, 2.99912, 1.66028, 5.22315, 1.86555, 9.13033, 10, 6.61627,
                6.94572, 3.68646, 5.01521, 2.99912, 1.66028, 5.22315, 1.86555, 9.13033, 10, 6.61627,
                6.94572, 3.68646, 5.01521, 2.99912, 1.66028, 5.22315, 1.86555, 9.13033, 10, 6.61627,
                6.94572, 3.68646, 5.01521, 2.99912, 1.66028, 5.22315, 1.86555, 9.13033, 10, 6.61627,
                6.94572, 3.68646, 5.01521, 2.99912, 1.66028, 5.22315, 1.86555, 9.13033, 10, 6.61627,
                6.94572, 3.68646, 5.01521, 2.99912, 1.66028, 5.22315, 1.86555, 9.13033, 10},
            std::vector<T>{
                1, 9.97466, 9.39302, 2.15312, 9.99136, 3.1248, 4.56923, 4.4912, 7.02771, 9.41985, 8.6168,
                3.81946, 5.72093, 4.99108, 3.0662, 5.80973, 9.22566, 5.11484, 4.87629, 9.45215, 8.0055,
                7.44373, 8.22482, 1.83521, 5.66337, 8.78518, 8.46232, 8.46643, 3.45745, 1.53319, 7.03475,
                6.33759, 7.04489, 4.70609, 2.77796, 3.60667, 2.27908, 8.04983, 4.71285, 1.30754, 6.61627,
                6.94572, 3.68646, 5.01521, 2.99912, 1.66028, 5.22315, 1.86555, 9.13033, 10},
                "augru_sequence_zero_attentional_gate"),
        AUGRUSequenceParams(
            5, 10, 10, 10,
            ET,
            std::vector<T>{
                1, 9.97466, 9.39302, 2.15312, 9.99136, 3.1248, 4.56923, 4.4912, 7.02771, 9.41985,
                8.6168, 3.81946, 5.72093, 4.99108, 3.0662, 5.80973, 9.22566, 5.11484, 4.87629, 9.45215,
                8.0055, 7.44373, 8.22482, 1.83521, 5.66337, 8.78518, 8.46232, 8.46643, 3.45745, 1.53319,
                7.03475, 6.33759, 7.04489, 4.70609, 2.77796, 3.60667, 2.27908, 8.04983, 4.71285, 1.30754,
                6.61627, 6.94572, 3.68646, 5.01521, 2.99912, 1.66028, 5.22315, 1.86555, 9.13033, 2.07541,
                5.72319, 1.75261, 9.25175, 9.19404, 3.69037, 6.2595, 6.09321, 6.52544, 9.60882, 3.34881,
                3.07914, 5.80104, 9.54944, 5.43754, 5.8654, 7.88937, 1.40811, 2.2597, 8.13163, 1.26821,
                8.94813, 5.86709, 5.03182, 9.02922, 4.39826, 5.84582, 6.87069, 4.25135, 6.13908, 6.74053,
                2.13683, 7.21184, 6.82974, 4.18545, 7.8691, 4.20879, 7.77509, 8.93208, 1.10502, 5.48298,
                1.66413, 8.08256, 1.57661, 4.19779, 9.47653, 4.41823, 7.86628, 7.94436, 3.71224, 7.95465,
                2.37637, 6.20771, 1.08107, 7.38138, 5.23577, 7.88133, 5.20653, 3.42101, 8.48523, 5.96192,
                1.63073, 5.25228, 7.68488, 2.7276, 5.1788, 3.07327, 5.57423, 2.87711, 1.44374, 5.66976,
                2.55051, 4.56682, 1.96629, 5.58829, 1.91922, 3.59846, 3.08583, 9.70901, 3.50487, 3.1026,
                1.82401, 6.1306, 4.76134, 4.31059, 8.31695, 3.60784, 7.45652, 6.51653, 4.84219, 7.76686,
                4.85031, 4.85544, 4.25714, 2.38005, 9.43471, 9.24769, 8.03763, 6.54696, 1.32399, 6.88891,
                2.16793, 3.64924, 4.24733, 3.47181, 1.66572, 2.36923, 2.45457, 9.44841, 4.34021, 1.45016,
                7.6686, 3.68812, 2.83922, 9.83581, 9.03719, 7.83414, 6.86009, 1.35715, 8.32489, 7.86316,
                5.09754, 5.78644, 1.98402, 2.31429, 5.5791, 2.94085, 9.24799, 5.15937, 2.19041, 7.87817,
                2.9146, 1.66833, 1.85877, 2.45985, 4.20817, 1.85777, 2.28937, 9.37912, 6.18926, 8.55681,
                6.60963, 3.92066, 7.5521, 5.70463, 7.6313, 2.48866, 7.18352, 4.8413, 7.55702, 7.80702,
                4.5785, 9.3268, 2.83159, 1.07202, 9.33716, 3.6506, 2.50256, 1.21691, 5.06801, 8.27505,
                4.31539, 6.48286, 1.31363, 4.1912, 1.70668, 7.23867, 1.11441, 5.13591, 9.65186, 4.00767,
                5.24875, 1.94852, 5.52768, 8.97121, 5.8094, 3.53329, 4.19126, 9.06652, 3.1734, 1.21496,
                9.69154, 4.86971, 4.1166, 6.19361, 2.13874, 9.55039, 3.8225, 9.57548, 2.96554, 3.2383,
                8.77422, 3.11741, 8.3359, 5.89508, 2.72134, 6.29956, 1.43323, 1.14286, 1.4474, 4.59474,
                6.19214, 8.80766, 8.07546, 3.29232, 1.74029, 2.4198, 2.88544, 4.75644, 4.12921, 7.29896,
                7.27759, 1.67252, 1.32823, 8.1046, 9.10476, 1.04197, 3.37783, 5.2064, 4.23835, 3.16196,
                1.20852, 5.78501, 2.17175, 6.05313, 2.51048, 4.78967, 7.16219, 3.4651, 1.09, 2.9788,
                1.28761, 9.41385, 8.03883, 5.65835, 1.14816, 3.6892, 5.86648, 8.73895, 2.66603, 1.75192,
                1.39845, 4.99427, 1.17387, 1.60329, 8.30594, 6.72662, 7.95565, 7.35114, 3.1439, 1.39976,
                3.53095, 8.78581, 1.65811, 6.94299, 2.68641, 5.70058, 9.13491, 5.27637, 8.6232, 8.54902,
                2.25352, 5.86274, 5.20377, 2.96815, 4.96745, 5.3225, 3.99956, 1.08021, 5.54918, 7.05833,
                1.49913, 2.41822, 6.44593, 3.87301, 9.01465, 8.11336, 2.95749, 2.80188, 7.12396, 2.40595,
                5.59325, 9.89258, 2.30223, 1.4347, 9.09158, 7.43797, 3.79295, 4.53646, 1.72705, 4.16909,
                1.00912, 6.62167, 2.80244, 6.626, 3.89307, 1.42586, 7.51028, 7.83327, 4.65674, 7.33902,
                6.26823, 9.72608, 3.73491, 3.8238, 3.03815, 7.05101, 8.0103, 5.61396, 6.53738, 1.41095,
                5.0149, 9.71211, 4.23604, 5.98629, 4.70219, 9.69442, 2.82752, 9.93544, 6.9328, 8.2817,
                5.12336, 8.98577, 5.80541, 6.19552, 9.25748, 3.82732, 7.53525, 8.24712, 5.32057, 5.38817,
                8.57269, 5.99975, 3.42893, 5.38068, 3.48261, 3.02851, 6.82079, 9.2902, 2.80427, 8.91868,
                5.19227, 7.52482, 3.72584, 5.40107, 2.83307, 1.79755, 2.49121, 5.52697, 8.08823, 9.13242,
                2.97572, 7.64318, 3.32023, 6.07788, 2.19187, 4.34879, 1.7457, 5.55154, 7.24966, 5.1128,
                4.25147, 8.34407, 1.4123, 4.49045, 5.12671, 7.62159, 9.18673, 3.49665, 8.35992, 6.90684,
                1.10152, 7.61818, 6.43145, 7.12017, 6.25564, 6.16169, 4.24916, 9.6283, 9.88249, 4.48422,
                8.52562, 9.83928, 6.26818, 7.03839, 1.77631, 9.92305, 8.0155, 9.94928, 6.88321, 1.33685,
                7.4718, 7.19305, 6.47932, 1.9559, 3.52616, 7.98593, 9.0115, 5.59539, 7.44137, 1.70001,
                6.53774, 8.54023, 7.26405, 5.99553, 8.75071, 7.70789, 3.38094, 9.99792, 6.16359, 6.75153,
                5.4073, 9.00437, 8.87059, 8.63011, 6.82951, 6.27021, 3.53425, 9.92489, 8.19695, 5.51473,
                7.95084, 2.11852, 9.28916, 1.40353, 3.05744, 8.58238, 3.75014, 5.35889, 6.85048, 2.29549,
                3.75218, 8.98228, 8.98158, 5.63695, 3.40379, 8.92309, 5.48185, 4.00095, 9.05227, 2.84035,
                8.37644, 8.54954, 5.70516, 2.45744, 9.54079, 1.53504, 8.9785, 6.1691, 4.40962, 10},
            std::vector<T>{
                1, 9.97466, 9.39302, 2.15312, 9.99136, 3.1248, 4.56923, 4.4912, 7.02771, 9.41985,
                8.6168, 3.81946, 5.72093, 4.99108, 3.0662, 5.80973, 9.22566, 5.11484, 4.87629, 9.45215,
                8.0055, 7.44373, 8.22482, 1.83521, 5.66337, 8.78518, 8.46232, 8.46643, 3.45745, 1.53319,
                7.03475, 6.33759, 7.04489, 4.70609, 2.77796, 3.60667, 2.27908, 8.04983, 4.71285, 1.30754,
                6.61627, 6.94572, 3.68646, 5.01521, 2.99912, 1.66028, 5.22315, 1.86555, 9.13033, 10},
            std::vector<int64_t>{10, 10, 10, 10, 10},
            std::vector<T>{
                1, 9.97466, 9.39302, 2.15312, 9.99136, 3.1248, 4.56923, 4.4912, 7.02771, 9.41985,
                8.6168, 3.81946, 5.72093, 4.99108, 3.0662, 5.80973, 9.22566, 5.11484, 4.87629, 9.45215,
                8.0055, 7.44373, 8.22482, 1.83521, 5.66337, 8.78518, 8.46232, 8.46643, 3.45745, 1.53319,
                7.03475, 6.33759, 7.04489, 4.70609, 2.77796, 3.60667, 2.27908, 8.04983, 4.71285, 1.30754,
                6.61627, 6.94572, 3.68646, 5.01521, 2.99912, 1.66028, 5.22315, 1.86555, 9.13033, 2.07541,
                5.72319, 1.75261, 9.25175, 9.19404, 3.69037, 6.2595, 6.09321, 6.52544, 9.60882, 3.34881,
                3.07914, 5.80104, 9.54944, 5.43754, 5.8654, 7.88937, 1.40811, 2.2597, 8.13163, 1.26821,
                8.94813, 5.86709, 5.03182, 9.02922, 4.39826, 5.84582, 6.87069, 4.25135, 6.13908, 6.74053,
                2.13683, 7.21184, 6.82974, 4.18545, 7.8691, 4.20879, 7.77509, 8.93208, 1.10502, 5.48298,
                1.66413, 8.08256, 1.57661, 4.19779, 9.47653, 4.41823, 7.86628, 7.94436, 3.71224, 7.95465,
                2.37637, 6.20771, 1.08107, 7.38138, 5.23577, 7.88133, 5.20653, 3.42101, 8.48523, 5.96192,
                1.63073, 5.25228, 7.68488, 2.7276, 5.1788, 3.07327, 5.57423, 2.87711, 1.44374, 5.66976,
                2.55051, 4.56682, 1.96629, 5.58829, 1.91922, 3.59846, 3.08583, 9.70901, 3.50487, 3.1026,
                1.82401, 6.1306, 4.76134, 4.31059, 8.31695, 3.60784, 7.45652, 6.51653, 4.84219, 7.76686,
                4.85031, 4.85544, 4.25714, 2.38005, 9.43471, 9.24769, 8.03763, 6.54696, 1.32399, 6.88891,
                2.16793, 3.64924, 4.24733, 3.47181, 1.66572, 2.36923, 2.45457, 9.44841, 4.34021, 1.45016,
                7.6686, 3.68812, 2.83922, 9.83581, 9.03719, 7.83414, 6.86009, 1.35715, 8.32489, 7.86316,
                5.09754, 5.78644, 1.98402, 2.31429, 5.5791, 2.94085, 9.24799, 5.15937, 2.19041, 7.87817,
                2.9146, 1.66833, 1.85877, 2.45985, 4.20817, 1.85777, 2.28937, 9.37912, 6.18926, 8.55681,
                6.60963, 3.92066, 7.5521, 5.70463, 7.6313, 2.48866, 7.18352, 4.8413, 7.55702, 7.80702,
                4.5785, 9.3268, 2.83159, 1.07202, 9.33716, 3.6506, 2.50256, 1.21691, 5.06801, 8.27505,
                4.31539, 6.48286, 1.31363, 4.1912, 1.70668, 7.23867, 1.11441, 5.13591, 9.65186, 4.00767,
                5.24875, 1.94852, 5.52768, 8.97121, 5.8094, 3.53329, 4.19126, 9.06652, 3.1734, 1.21496,
                9.69154, 4.86971, 4.1166, 6.19361, 2.13874, 9.55039, 3.8225, 9.57548, 2.96554, 3.2383,
                8.77422, 3.11741, 8.3359, 5.89508, 2.72134, 6.29956, 1.43323, 1.14286, 1.4474, 4.59474,
                6.19214, 8.80766, 8.07546, 3.29232, 1.74029, 2.4198, 2.88544, 4.75644, 4.12921, 7.29896,
                7.27759, 1.67252, 1.32823, 8.1046, 9.10476, 1.04197, 3.37783, 5.2064, 4.23835, 3.16196,
                1.20852, 5.78501, 2.17175, 6.05313, 2.51048, 4.78967, 7.16219, 3.4651, 1.09, 2.9788,
                1.28761, 9.41385, 8.03883, 5.65835, 1.14816, 3.6892, 5.86648, 8.73895, 2.66603, 1.75192,
                1.39845, 4.99427, 1.17387, 1.60329, 8.30594, 6.72662, 7.95565, 7.35114, 3.1439, 10},
            std::vector<T>{
                1, 9.97466, 9.39302, 2.15312, 9.99136, 3.1248, 4.56923, 4.4912, 7.02771, 9.41985,
                8.6168, 3.81946, 5.72093, 4.99108, 3.0662, 5.80973, 9.22566, 5.11484, 4.87629, 9.45215,
                8.0055, 7.44373, 8.22482, 1.83521, 5.66337, 8.78518, 8.46232, 8.46643, 3.45745, 1.53319,
                7.03475, 6.33759, 7.04489, 4.70609, 2.77796, 3.60667, 2.27908, 8.04983, 4.71285, 1.30754,
                6.61627, 6.94572, 3.68646, 5.01521, 2.99912, 1.66028, 5.22315, 1.86555, 9.13033, 2.07541,
                5.72319, 1.75261, 9.25175, 9.19404, 3.69037, 6.2595, 6.09321, 6.52544, 9.60882, 3.34881,
                3.07914, 5.80104, 9.54944, 5.43754, 5.8654, 7.88937, 1.40811, 2.2597, 8.13163, 1.26821,
                8.94813, 5.86709, 5.03182, 9.02922, 4.39826, 5.84582, 6.87069, 4.25135, 6.13908, 6.74053,
                2.13683, 7.21184, 6.82974, 4.18545, 7.8691, 4.20879, 7.77509, 8.93208, 1.10502, 5.48298,
                1.66413, 8.08256, 1.57661, 4.19779, 9.47653, 4.41823, 7.86628, 7.94436, 3.71224, 7.95465,
                2.37637, 6.20771, 1.08107, 7.38138, 5.23577, 7.88133, 5.20653, 3.42101, 8.48523, 5.96192,
                1.63073, 5.25228, 7.68488, 2.7276, 5.1788, 3.07327, 5.57423, 2.87711, 1.44374, 5.66976,
                2.55051, 4.56682, 1.96629, 5.58829, 1.91922, 3.59846, 3.08583, 9.70901, 3.50487, 3.1026,
                1.82401, 6.1306, 4.76134, 4.31059, 8.31695, 3.60784, 7.45652, 6.51653, 4.84219, 7.76686,
                4.85031, 4.85544, 4.25714, 2.38005, 9.43471, 9.24769, 8.03763, 6.54696, 1.32399, 6.88891,
                2.16793, 3.64924, 4.24733, 3.47181, 1.66572, 2.36923, 2.45457, 9.44841, 4.34021, 1.45016,
                7.6686, 3.68812, 2.83922, 9.83581, 9.03719, 7.83414, 6.86009, 1.35715, 8.32489, 7.86316,
                5.09754, 5.78644, 1.98402, 2.31429, 5.5791, 2.94085, 9.24799, 5.15937, 2.19041, 7.87817,
                2.9146, 1.66833, 1.85877, 2.45985, 4.20817, 1.85777, 2.28937, 9.37912, 6.18926, 8.55681,
                6.60963, 3.92066, 7.5521, 5.70463, 7.6313, 2.48866, 7.18352, 4.8413, 7.55702, 7.80702,
                4.5785, 9.3268, 2.83159, 1.07202, 9.33716, 3.6506, 2.50256, 1.21691, 5.06801, 8.27505,
                4.31539, 6.48286, 1.31363, 4.1912, 1.70668, 7.23867, 1.11441, 5.13591, 9.65186, 4.00767,
                5.24875, 1.94852, 5.52768, 8.97121, 5.8094, 3.53329, 4.19126, 9.06652, 3.1734, 1.21496,
                9.69154, 4.86971, 4.1166, 6.19361, 2.13874, 9.55039, 3.8225, 9.57548, 2.96554, 3.2383,
                8.77422, 3.11741, 8.3359, 5.89508, 2.72134, 6.29956, 1.43323, 1.14286, 1.4474, 4.59474,
                6.19214, 8.80766, 8.07546, 3.29232, 1.74029, 2.4198, 2.88544, 4.75644, 4.12921, 7.29896,
                7.27759, 1.67252, 1.32823, 8.1046, 9.10476, 1.04197, 3.37783, 5.2064, 4.23835, 3.16196,
                1.20852, 5.78501, 2.17175, 6.05313, 2.51048, 4.78967, 7.16219, 3.4651, 1.09, 2.9788,
                1.28761, 9.41385, 8.03883, 5.65835, 1.14816, 3.6892, 5.86648, 8.73895, 2.66603, 1.75192,
                1.39845, 4.99427, 1.17387, 1.60329, 8.30594, 6.72662, 7.95565, 7.35114, 3.1439, 10},
            std::vector<T>{
                1, 9.97466, 9.39302, 2.15312, 9.99136, 3.1248, 4.56923, 4.4912, 7.02771, 9.41985,
                8.6168, 3.81946, 5.72093, 4.99108, 3.0662, 5.80973, 9.22566, 5.11484, 4.87629, 9.45215,
                8.0055, 7.44373, 8.22482, 1.83521, 5.66337, 8.78518, 8.46232, 8.46643, 3.45745, 10},
            std::vector<T>
                {0.034518f, 0.673286f, 0.406714f, 0.252863f, 0.403579f, 0.985528f,
                0.195026f, 0.102555f, 0.862911f, 0.698157f, 0.159086f, 0.980120f,
                0.821253f, 0.041956f, 0.297002f, 0.154800f, 0.107107f, 0.457263f,
                0.512179f, 0.372368f, 0.672125f, 0.078459f, 0.593353f, 0.800342f,
                0.245871f, 0.675492f, 0.799024f, 0.432696f, 0.095204f, 0.187363f,
                0.715765f, 0.981477f, 0.806237f, 0.544187f, 0.450795f, 0.717673f,
                0.426730f, 0.601688f, 0.765923f, 0.675334f, 0.341641f, 0.958286f,
                0.137889f, 0.239074f, 0.015245f, 0.148769f, 0.793591f, 0.210904f,
                0.973056f, 0.646550f},
            std::vector<T>{
                1, 9.66487, 9.10331, 2.11332, 9.681, 3.05146, 4.44603, 4.37069, 6.81965, 9.12921, 1,
                3.83094, 3.64746, 1.36374, 3.8362, 1.67024, 2.12587, 2.10125, 2.90136, 3.65593, 1,
                2.67955, 2.5707, 1.2158, 2.68268, 1.39764, 1.66796, 1.65336, 2.12805, 2.57572, 1,
                2.25486, 2.17353, 1.16123, 2.25719, 1.29709, 1.49906, 1.48815, 1.84281, 2.17728, 1,
                1.74842, 1.69992, 1.09616, 1.74982, 1.17719, 1.29765, 1.29114, 1.50267, 1.70216, 1,
                1.01083, 1.01013, 1.00139, 1.01085, 1.00256, 1.00431, 1.00421, 1.00727, 1.01016, 1,
                1.00872, 1.00815, 1.00112, 1.00874, 1.00206, 1.00347, 1.00339, 1.00586, 1.00818, 1,
                1.00782, 1.00732, 1.00101, 1.00784, 1.00185, 1.00311, 1.00304, 1.00526, 1.00734, 1,
                1.00107, 1.001, 1.00014, 1.00107, 1.00025, 1.00043, 1.00042, 1.00072, 1.00101, 1,
                1.00032, 1.0003, 1.00004, 1.00032, 1.00008, 1.00013, 1.00013, 1.00022, 1.0003, 7.40507,
                3.37092, 4.9699, 4.35616, 2.7375, 5.04457, 7.91707, 4.46023, 4.25963, 8.10753, 1.12733,
                1.04713, 1.07892, 1.06672, 1.03454, 1.08041, 1.13751, 1.06879, 1.0648, 1.1413, 1.02276,
                1.00842, 1.01411, 1.01193, 1.00617, 1.01437, 1.02458, 1.0123, 1.01158, 1.02526, 1.02181,
                1.00807, 1.01352, 1.01143, 1.00592, 1.01377, 1.02355, 1.01178, 1.0111, 1.0242, 1.01533,
                1.00567, 1.0095, 1.00803, 1.00416, 1.00968, 1.01655, 1.00828, 1.0078, 1.01701, 1.01296,
                1.0048, 1.00803, 1.00679, 1.00351, 1.00818, 1.01399, 1.007, 1.00659, 1.01438, 1.01157,
                1.00428, 1.00717, 1.00606, 1.00314, 1.00731, 1.01249, 1.00625, 1.00589, 1.01284, 1.00628,
                1.00232, 1.00389, 1.00329, 1.0017, 1.00396, 1.00678, 1.00339, 1.0032, 1.00697, 1.00306,
                1.00113, 1.0019, 1.0016, 1.00083, 1.00193, 1.00331, 1.00165, 1.00156, 1.0034, 1.00192,
                1.00071, 1.00119, 1.00101, 1.00052, 1.00121, 1.00208, 1.00104, 1.00098, 1.00213, 3.29693,
                3.11274, 3.36884, 1.27384, 2.529, 3.55257, 3.44671, 3.44806, 1.80574, 1.17482, 3.11671,
                2.94697, 3.18298, 1.25236, 2.40904, 3.35229, 3.25474, 3.25598, 1.74252, 1.1611, 1.86076,
                1.79173, 1.8877, 1.10262, 1.57298, 1.95655, 1.91688, 1.91739, 1.30194, 1.06551, 1.17186,
                1.15808, 1.17724, 1.02049, 1.1144, 1.19098, 1.18306, 1.18316, 1.06029, 1.01308, 1.1296,
                1.11921, 1.13366, 1.01545, 1.08627, 1.14403, 1.13805, 1.13813, 1.04546, 1.00986, 1.04206,
                1.03868, 1.04337, 1.00501, 1.028, 1.04674, 1.0448, 1.04482, 1.01475, 1.0032, 1.00845,
                1.00777, 1.00872, 1.00101, 1.00563, 1.00939, 1.009, 1.00901, 1.00296, 1.00064, 1.0048,
                1.00441, 1.00495, 1.00057, 1.00319, 1.00533, 1.00511, 1.00511, 1.00168, 1.00037, 1.00434,
                1.00399, 1.00447, 1.00052, 1.00289, 1.00482, 1.00462, 1.00462, 1.00152, 1.00033, 1.00353,
                1.00324, 1.00364, 1.00042, 1.00235, 1.00392, 1.00376, 1.00376, 1.00124, 1.00027, 2.71529,
                2.51713, 2.71817, 2.0534, 1.50536, 1.74091, 1.36356, 3.00381, 2.05532, 1.08741, 1.03177,
                1.0281, 1.03183, 1.01951, 1.00936, 1.01372, 1.00673, 1.03712, 1.01955, 1.00162, 1.00616,
                1.00545, 1.00617, 1.00378, 1.00181, 1.00266, 1.0013, 1.00719, 1.00379, 1.00031, 1.00281,
                1.00248, 1.00281, 1.00172, 1.00083, 1.00121, 1.00059, 1.00328, 1.00173, 1.00014, 1.00154,
                1.00136, 1.00154, 1.00095, 1.00045, 1.00067, 1.00033, 1.0018, 1.00095, 1.00008, 1.00044,
                1.00038, 1.00044, 1.00027, 1.00013, 1.00019, 1.00009, 1.00051, 1.00027, 1.00002, 1.00025,
                1.00022, 1.00025, 1.00015, 1.00007, 1.00011, 1.00005, 1.00029, 1.00015, 1.00001, 1.0001,
                1.00009, 1.0001, 1.00006, 1.00003, 1.00004, 1.00002, 1.00012, 1.00006, 1.00001, 1.00002,
                1.00002, 1.00002, 1.00001, 1.00001, 1.00001, 1, 1.00003, 1.00001, 1, 1.00001,
                1.00001, 1.00001, 1, 1, 1, 1, 1.00001, 1, 1, 4.69752,
                4.91442, 2.76866, 3.64345, 2.31614, 1.4347, 3.78035, 1.56984, 6.35268, 6.92523, 1.15424,
                1.16329, 1.07378, 1.11027, 1.0549, 1.01813, 1.11598, 1.02377, 1.22328, 1.24717, 1.13297,
                1.14077, 1.0636, 1.09506, 1.04733, 1.01563, 1.09999, 1.02049, 1.19249, 1.21308, 1.10118,
                1.10712, 1.0484, 1.07234, 1.03602, 1.0119, 1.07608, 1.01559, 1.14647, 1.16214, 1.09964,
                1.10548, 1.04766, 1.07123, 1.03547, 1.01171, 1.07492, 1.01536, 1.14424, 1.15967, 1.08482,
                1.08979, 1.04057, 1.06064, 1.03019, 1.00997, 1.06378, 1.01307, 1.12278, 1.13592, 1.01751,
                1.01853, 1.00837, 1.01252, 1.00623, 1.00206, 1.01316, 1.0027, 1.02534, 1.02805, 1.01381,
                1.01462, 1.00661, 1.00988, 1.00492, 1.00162, 1.01039, 1.00213, 1.02, 1.02214, 1.00037,
                1.00039, 1.00018, 1.00027, 1.00013, 1.00004, 1.00028, 1.00006, 1.00054, 1.0006, 1.00013,
                1.00014, 1.00006, 1.00009, 1.00005, 1.00002, 1.0001, 1.00002, 1.00019, 1.00021},
            std::vector<T>{
                1, 1.00032, 1.0003, 1.00004, 1.00032, 1.00008, 1.00013, 1.00013, 1.00022, 1.0003, 1.00192,
                1.00071, 1.00119, 1.00101, 1.00052, 1.00121, 1.00208, 1.00104, 1.00098, 1.00213, 1.00353,
                1.00324, 1.00364, 1.00042, 1.00235, 1.00392, 1.00376, 1.00376, 1.00124, 1.00027, 1.00001,
                1.00001, 1.00001, 1, 1, 1, 1, 1.00001, 1, 1, 1.00013,
                1.00014, 1.00006, 1.00009, 1.00005, 1.00002, 1.0001, 1.00002, 1.00019, 1.00021},
                "augru_sequence_attentional_gate_provided"),
        AUGRUSequenceParams(
            3, 4, 5, 6,
            ET,
            std::vector<T>{
                18.351103f, 13.520717f, 11.687705f, 16.378006f, 15.568568f, 2.611258f,
                8.754645f, 1.173500f, 19.354236f, 18.344900f, 16.889204f, 15.882624f,
                5.627136f, 18.532579f, 3.884619f, 5.119867f, 19.311458f, 13.728893f,
                14.391294f, 14.994748f, 1.131725f, 7.582668f, 14.131282f, 19.547387f,
                17.038887f, 9.964800f, 0.993434f, 11.316858f, 5.330938f, 17.378582f,
                14.467881f, 4.232232f, 1.326875f, 5.338556f, 6.427002f, 7.961141f,
                11.043235f, 13.890585f, 15.062217f, 11.441225f, 14.734964f, 17.898548f,
                3.364136f, 12.155336f, 13.873233f, 5.822778f, 14.347963f, 3.387873f,
                11.021886f, 15.638179f, 15.419064f, 3.743839f, 7.656481f, 9.581622f,
                11.851100f, 4.481464f, 2.963150f, 18.103926f, 1.524719f, 6.200507f,
                10.349086f, 1.085302f, 9.037059f, 8.240071f, 9.869549f, 13.749188f,
                6.019619f, 7.583932f, 9.870675f, 5.238130f, 3.383805f, 6.283896f},
            std::vector<T>{
                17.012305f, 0.280625f, 4.584126f, 5.899313f, 17.788775f, 19.869320f,
                17.561679f, 1.209108f, 2.772207f, 15.623852f, 0.212452f, 8.111215f,
                5.552669f, 10.256264f, 0.026503f},
            std::vector<int64_t>{6, 6, 6},
            std::vector<T>{
                2.599543f, 1.017497f, 2.188785f, 9.186879f, 19.503938f, 9.249134f,
                1.613915f, 16.139065f, 16.139263f, 6.162586f, 3.584053f, 13.815329f,
                3.166837f, 9.710348f, 13.262320f, 5.637648f, 7.555024f, 4.282188f,
                0.890288f, 9.009603f, 6.672247f, 10.287107f, 3.250285f, 17.159962f,
                12.805244f, 7.266579f, 6.671443f, 4.756829f, 14.331350f, 4.955475f,
                15.988379f, 1.444935f, 8.917654f, 13.265950f, 14.192596f, 6.813692f,
                6.118729f, 9.446750f, 6.676908f, 2.862558f, 7.298118f, 14.044843f,
                4.047191f, 18.313578f, 14.433683f, 10.046828f, 6.272552f, 5.960752f,
                7.687321f, 17.799588f, 17.974497f, 3.092019f, 17.537077f, 5.673742f,
                7.945506f, 16.820461f, 3.382466f, 14.536867f, 10.431873f, 17.666089f},
            std::vector<T>{
                19.883110f, 3.627721f, 12.381158f, 8.494785f, 0.744855f, 2.083576f,
                3.628426f, 13.435420f, 8.021385f, 16.324589f, 9.171570f, 5.194103f,
                9.534415f, 3.747218f, 14.976561f, 15.450245f, 0.690866f, 14.611735f,
                12.058640f, 12.255162f, 11.922434f, 5.324248f, 16.084200f, 11.910202f,
                8.972001f, 8.331036f, 5.271550f, 3.376512f, 17.947813f, 11.445078f,
                19.813407f, 7.357054f, 18.609516f, 1.641881f, 15.659794f, 12.757155f,
                19.407852f, 15.042537f, 5.609916f, 5.240596f, 16.863105f, 2.939757f,
                7.419171f, 17.463287f, 15.461648f, 3.089222f, 0.349571f, 17.916363f,
                17.127918f, 9.218649f, 16.540375f, 19.735329f, 14.503906f, 2.743288f,
                18.953856f, 7.761779f, 15.795299f, 4.491015f, 16.724311f, 10.091499f,
                8.233435f, 7.727666f, 17.705235f, 10.873172f, 6.631204f, 4.461747f,
                0.832513f, 7.237117f, 12.597311f, 13.430508f, 11.884650f, 3.903417f,
                8.122048f, 14.688200f, 3.733118f},
            std::vector<T>{
                14.387985f, 12.398350f, 12.775042f, 11.106416f, 18.022651f, 2.087257f,
                17.773750f, 15.364595f, 9.153267f, 14.613577f, 11.195361f, 15.070744f,
                1.611076f, 11.896046f, 10.134009f},
            std::vector<T>
                {9.273749f, 12.871767f, 16.940379f, 9.644809f, 8.121616f, 12.174741f,
                11.509982f, 10.122257f, 4.616639f, 13.560133f, 3.175609f, 5.129174f,
                2.827964f, 9.646965f, 9.387886f, 1.972116f, 17.192705f, 6.235506f},
            std::vector<T>{
                -131.482, 6.95193, -28.6542, -39.5357, -137.906, 1, 1, 1, 1, 1, 1,
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
                1, 1, 1, 1, 1, 1, 1, 1, 1, -197.316,
                -173.063, -1.19772, -17.6259, -152.696, 1, 1, 1, 1, 1, 1,
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
                1, 1, 1, 1, 1, 1, 1, 1, 1, 2.43961,
                -11.999, -7.32212, -15.9201, 2.77952, 1, 94.1084, 72.961, 147.308, 1, 1,
                -779.982, -602.601, -1226.21, 1, 1, 1, 1, 1, 1, 1,
                1, 1, 1, 1, 1, 1, 1, 1, 1,},
            std::vector<T>{
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
                "augru_sequence_different_input_size_and_hidden_size_and_seq_length"),
AUGRUSequenceParams(
            3, 4, 4, 4,
            ET,
            std::vector<T>{
                6.333189f, 5.312533f, 3.092159f, 6.788004f, 6.543326f, 6.307378f,
                7.487966f, 3.300125f, 5.563141f, 5.551623f, 3.812029f, 0.132248f,
                6.767892f, 7.179934f, 4.832786f, 7.047989f, 7.439896f, 5.970488f,
                4.878981f, 7.562621f, 7.069236f, 6.484528f, 3.208064f, 5.561788f,
                3.716249f, 3.412311f, 2.414488f, 7.465214f, 6.444024f, 6.718469f,
                1.158724f, 0.874442f, 3.319976f, 3.639372f, 5.725887f, 6.594659f,
                2.427224f, 7.611652f, 4.804684f, 3.739928f, 1.892036f, 2.038615f,
                1.297785f, 2.687379f, 7.228432f, 3.015881f, 1.658817f, 6.812868f},
            std::vector<T>{
                1.905747f, 1.157613f, 7.828747f, 0.730339f, 0.177484f, 6.356011f,
                7.802150f, 0.351901f, 2.614103f, 5.295752f, 1.925256f, 5.925945f},
            std::vector<int64_t>{2, 4, 6},
            std::vector<T>{
                4.092708f, 3.566296f, 1.985790f, 6.146150f, 6.427968f, 7.096002f,
                7.786629f, 1.156184f, 2.091389f, 3.677408f, 0.800674f, 2.707813f,
                5.396107f, 5.135335f, 3.197786f, 2.983154f, 3.029478f, 1.616802f,
                2.162019f, 6.922834f, 5.473023f, 4.648859f, 7.976208f, 0.100666f,
                1.022222f, 6.531802f, 4.358081f, 2.619875f, 2.189079f, 4.086223f,
                7.818407f, 1.802662f, 7.781939f, 7.542665f, 0.512391f, 6.402292f,
                6.450581f, 5.147434f, 5.103659f, 0.894397f, 3.192224f, 3.798631f,
                4.647818f, 3.119819f, 6.469874f, 1.386456f, 2.030223f, 6.888086f},
            std::vector<T>{
                5.094750f, 0.455363f, 4.989539f, 0.998320f, 6.369301f, 6.971411f,
                1.183518f, 1.386444f, 7.572741f, 4.089349f, 0.116142f, 3.784642f,
                7.925501f, 6.721643f, 3.293674f, 5.754296f, 0.642623f, 2.969238f,
                3.536983f, 6.635469f, 1.634170f, 0.507635f, 0.205818f, 0.014995f,
                4.528792f, 7.128315f, 2.403315f, 7.728932f, 4.206394f, 6.285463f,
                5.314773f, 6.473219f, 2.506818f, 0.430820f, 3.337787f, 3.828441f,
                2.620897f, 5.545934f, 2.593279f, 3.601373f, 2.595556f, 0.687849f,
                5.277596f, 4.074282f, 1.844880f, 1.232070f, 4.970289f, 5.472321f},
            std::vector<T>{
                5.516398f, 5.621736f, 4.341954f, 6.820305f, 4.760572f, 7.643595f,
                1.733547f, 3.100034f, 7.009072f, 3.027971f, 5.044797f, 0.534897f},
            std::vector<T>
                {5.472119f, 1.116471f, 4.916850f, 1.217513f, 5.672895f, 4.827186f,
                 2.210116f, 3.160670f, 4.265747f, 3.949529f, 4.224079f, 3.049556f},
            std::vector<T>{
                -3.05061, 0.295136, -29.539, 2.20596, 1, 1.0821, 2.32396, -1.30623, 0, 0, 0,
                0, 0, 0, 0, 0, 4.84353, -24.0281, -30.7857, 4.0285, 1,
                -1, 122.647, 1, 1, 3.42023, -146.207, 1, 1, 1, 319.066,
                1, -4.27125, -13.0288, -2.02165, -15.0869, 16.5477, 1, 1, 1, -49.1271,
                1, 1, 1, 0.999999, -1, -1, 1},
            std::vector<T>{
                1, 1.0821, 2.32396, -1.30623, 1, 1, 319.066, 1, 0, 0, 0, 0},
                "augru_sequence_different_sequence_len_in_each_batch"),
    };
    return params;
}

template <element::Type_t ET>
std::vector<AUGRUSequenceParams> generateParamsBF16() {
    using T = typename element_type_traits<ET>::value_type;
    std::vector<AUGRUSequenceParams> params {
        AUGRUSequenceParams(
            3, 4, 5, 6,
            ET,
            std::vector<T>{
                18.351103f, 13.520717f, 11.687705f, 16.378006f, 15.568568f, 2.611258f,
                8.754645f, 1.173500f, 19.354236f, 18.344900f, 16.889204f, 15.882624f,
                5.627136f, 18.532579f, 3.884619f, 5.119867f, 19.311458f, 13.728893f,
                14.391294f, 14.994748f, 1.131725f, 7.582668f, 14.131282f, 19.547387f,
                17.038887f, 9.964800f, 0.993434f, 11.316858f, 5.330938f, 17.378582f,
                14.467881f, 4.232232f, 1.326875f, 5.338556f, 6.427002f, 7.961141f,
                11.043235f, 13.890585f, 15.062217f, 11.441225f, 14.734964f, 17.898548f,
                3.364136f, 12.155336f, 13.873233f, 5.822778f, 14.347963f, 3.387873f,
                11.021886f, 15.638179f, 15.419064f, 3.743839f, 7.656481f, 9.581622f,
                11.851100f, 4.481464f, 2.963150f, 18.103926f, 1.524719f, 6.200507f,
                10.349086f, 1.085302f, 9.037059f, 8.240071f, 9.869549f, 13.749188f,
                6.019619f, 7.583932f, 9.870675f, 5.238130f, 3.383805f, 6.283896f},
            std::vector<T>{
                17.012305f, 0.280625f, 4.584126f, 5.899313f, 17.788775f, 19.869320f,
                17.561679f, 1.209108f, 2.772207f, 15.623852f, 0.212452f, 8.111215f,
                5.552669f, 10.256264f, 0.026503f},
            std::vector<int64_t>{6, 6, 6},
            std::vector<T>{
                2.599543f, 1.017497f, 2.188785f, 9.186879f, 19.503938f, 9.249134f,
                1.613915f, 16.139065f, 16.139263f, 6.162586f, 3.584053f, 13.815329f,
                3.166837f, 9.710348f, 13.262320f, 5.637648f, 7.555024f, 4.282188f,
                0.890288f, 9.009603f, 6.672247f, 10.287107f, 3.250285f, 17.159962f,
                12.805244f, 7.266579f, 6.671443f, 4.756829f, 14.331350f, 4.955475f,
                15.988379f, 1.444935f, 8.917654f, 13.265950f, 14.192596f, 6.813692f,
                6.118729f, 9.446750f, 6.676908f, 2.862558f, 7.298118f, 14.044843f,
                4.047191f, 18.313578f, 14.433683f, 10.046828f, 6.272552f, 5.960752f,
                7.687321f, 17.799588f, 17.974497f, 3.092019f, 17.537077f, 5.673742f,
                7.945506f, 16.820461f, 3.382466f, 14.536867f, 10.431873f, 17.666089f},
            std::vector<T>{
                19.883110f, 3.627721f, 12.381158f, 8.494785f, 0.744855f, 2.083576f,
                3.628426f, 13.435420f, 8.021385f, 16.324589f, 9.171570f, 5.194103f,
                9.534415f, 3.747218f, 14.976561f, 15.450245f, 0.690866f, 14.611735f,
                12.058640f, 12.255162f, 11.922434f, 5.324248f, 16.084200f, 11.910202f,
                8.972001f, 8.331036f, 5.271550f, 3.376512f, 17.947813f, 11.445078f,
                19.813407f, 7.357054f, 18.609516f, 1.641881f, 15.659794f, 12.757155f,
                19.407852f, 15.042537f, 5.609916f, 5.240596f, 16.863105f, 2.939757f,
                7.419171f, 17.463287f, 15.461648f, 3.089222f, 0.349571f, 17.916363f,
                17.127918f, 9.218649f, 16.540375f, 19.735329f, 14.503906f, 2.743288f,
                18.953856f, 7.761779f, 15.795299f, 4.491015f, 16.724311f, 10.091499f,
                8.233435f, 7.727666f, 17.705235f, 10.873172f, 6.631204f, 4.461747f,
                0.832513f, 7.237117f, 12.597311f, 13.430508f, 11.884650f, 3.903417f,
                8.122048f, 14.688200f, 3.733118f},
            std::vector<T>{
                14.387985f, 12.398350f, 12.775042f, 11.106416f, 18.022651f, 2.087257f,
                17.773750f, 15.364595f, 9.153267f, 14.613577f, 11.195361f, 15.070744f,
                1.611076f, 11.896046f, 10.134009f},
            std::vector<T>
                {9.273749f, 12.871767f, 16.940379f, 9.644809f, 8.121616f, 12.174741f,
                11.509982f, 10.122257f, 4.616639f, 13.560133f, 3.175609f, 5.129174f,
                2.827964f, 9.646965f, 9.387886f, 1.972116f, 17.192705f, 6.235506f},
            std::vector<T>{
                -130, 6.9375, -28.25, -39.25, -136, 1, 1, 1, 1, 1, 1,
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
                1, 1, 1, 1, 1, 1, 1, 1, 1, -196,
                -172, -1.125, -17.5, -152, 1, 1, 1, 1, 1, 1,
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
                1, 1, 1, 1, 1, 1, 1, 1, 1, 2.42188,
                -11.9375, -7.25, -15.6875, 2.75, 1, 93, 72, 144, 1, 1,
                -768, -592, -1184, 1, 1, 1, 1, 1, 1, 1,
                1, 1, 1, 1, 1, 1, 1, 1, 1},
            std::vector<T>{
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
                "augru_sequence_bfloat16"),
    };
    return params;
}

std::vector<AUGRUSequenceParams> generateCombinedParams() {
    const std::vector<std::vector<AUGRUSequenceParams>> generatedParams {
        generateParams<element::Type_t::f64>(),
        generateParams<element::Type_t::f32>(),
        generateParams<element::Type_t::f16>(),
        generateParamsBF16<element::Type_t::bf16>(),
    };
    std::vector<AUGRUSequenceParams> combinedParams;

    for (const auto& params : generatedParams) {
        combinedParams.insert(combinedParams.end(), params.begin(), params.end());
    }
    return combinedParams;
}

INSTANTIATE_TEST_SUITE_P(smoke_AUGRUSequence_With_Hardcoded_Refs, ReferenceAUGRUSequenceTest,
    testing::ValuesIn(generateCombinedParams()), ReferenceAUGRUSequenceTest::getTestCaseName);

} // namespace
